<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .bgc {
      background-color: #f40;
    }
  </style>
</head>

<body>
  <div id="test"></div>

  <!-- 引入react核心库，这个库必须最先引入 -->
  <script src="./js/react.development.js"></script>
  <!-- 引入react-dom，用于支持react操作dom -->
  <script src="./js/react-dom.development.js"></script>
  <!-- 引入babel，将jsx转化为js -->
  <script src="./js/babel.min.js"></script>

  <script type="text/babel">
    const text = '这是react'
    // 1. 创建虚拟dom
    // const VDOM = <h1>hello react</h1> // 注意这里不要写引号，因为不是字符串，这是jsx的语法
    // react里的单花括号相当于vue里的胡子语法
    const VDOM = (
      <div>
        <h1 className="bgc">
          <span>{text}</span>
        </h1>
        // 第一层花括号表示里面是js语法，第二层是表明类型是object。这里的行内表达式要使用键值对的形式。
        <span style={{color:'red',backgroundColor:'green'}}>ReactDOM</span>
      </div>
    )
    // 2.渲染虚拟dom到页面
    ReactDOM.render(VDOM, document.getElementById('test')) // ReactDOM.render() 这是固定语法
  </script>

  /*
  jsx语法规则：
    1. 定义虚拟DOM时，不要写引号
    2. 标签中混入js表达式时，使用 {}
    3. 样式的类名指定要用className，而不是class
    4. 内联样式，要用 style={{key:value}} 的形式去写
    5. 只有一个根标签
    6. 标签要闭合
    7. 标签首字母如果是小写，babel会去匹配html里的标签；如果标签首字母是大写，react会去渲染对应的组件。
  */
</body>

</html>